package com.yipao.db.dao.dev;

import com.yipao.db.domain.devinfo.DevInfo;
import com.yipao.db.domain.devinfo.DevInfoExample;
import com.yipao.db.domain.devinfo.vo.DevInfoReq;
import com.yipao.db.domain.excel.ExportDevInfoVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @author voyboy
 */
public interface DevInfoMapper {


    int deleteByPrimaryKey(Integer id);

    int insert(DevInfo record);

    int insertSelective(DevInfo record);

    List<DevInfo> selectByExample(DevInfoExample example);

    List<DevInfo> findAll(DevInfoReq req);

    DevInfo selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(DevInfo record);

    int updateByPrimaryKey(DevInfo record);


    /**
     * 获取所有状态码(去重)
     *
     * @return
     */
    List<Integer> getAllStatusCode();

    /**
     * 获取所有故障状态(去重)
     *
     * @return
     */
    List<Integer> getAllDevStatus();

    /**
     * 查询excel所需字段
     *
     * @return
     */
    List<ExportDevInfoVo> findAllExcel();

    /**
     * 获取最大设备编号
     *
     * @return
     */
    Integer getMaxDevCode();

    /**
     * 根据机器识别码获取设备id
     *
     * @param imei    机器识别码
     * @param deleted 删除状态
     * @return
     */
    Integer getIdByImei(@Param("imei") String imei, @Param("deleted") Integer deleted);

    /**
     * 根据设备id获取机器识别码
     *
     * @param id    机器识别码
     * @param deleted 删除状态
     * @return
     */
    String getImeiById(@Param("id") Integer id, @Param("deleted") Integer deleted);

    /**
     * 根据imei查询设备是否存在
     *
     * @param imei    机器识别码
     * @param deleted 删除状态
     * @return
     */
    Integer queryDevCountByImei(@Param("imei") String imei, @Param("deleted") Integer deleted);

    /**
     * 查询所有设备
     * @return
     */
    List<String> queryAllDev();
}
